Opening and Closing Files

An application must open an AVI file before reading or writing. To open an AVI file, use the AVIFileOpen1_3JE9 function. AVIFileOpen returns the address of an AVI file interface that contains the handle of the open file and increments the reference count of the file.

The AVIFileOpen function supports the OF flags used with the OpenFile47XK05 function. If an application writes to an existing file, it must include the OF_WRITE flag in AVIFileOpen. Similarly, if your application creates and writes to a new file, you must include the OF_CREATE and OF_WRITE flags in AVIFileOpen.

When you open a file using AVIFileOpen, you can use a default file handler or you can specify a custom file handler to read and write to the file and its data streams. In either case, AVIFile searches the registry for the correct file handler to use. You must ensure custom file handlers are in the registry before an application can access them.

You can increment the reference count of a file by using the AVIFileAddRef23.C6H5 function. For example, you might want to do this when passing a handle of the file interface to another application, or when you want to keep a file open while using a function that would normally close the file.

You can close a file by using the AVIFileRelease31SD3RX function. The AVIFileRelease function decrements the reference count of an AVI file, saves changes made to the file, and when the reference count reaches zero, closes the file. Your applications should balance the reference count by including a call to AVIFileRelease for each use of AVIFileOpen1_3JE9 and AVIFileAddRef.

 

Note  An application can open a file with one or more program threads. However, for the best possible performance, only one thread should access the file at any one time.